# locust777

//--------------------------------------------------------------------------------------------------


//选择排序：
//数组中10个整数按从小到大排序。

//
////1.自己思考法
//#include<stdio.h>
//#include<windows.h>
//
//int main()
//{
//	//输入
//	int i = 0;
//	int j = 0;
//	int m = 0;
//	//int arr[10] = {10,9,8,7,6,5,4,3,2,1};
//	int arr[10];
//	for(i = 0;i < 10;i++)                       //c语言中scanf语句的弊端,都需要加&传地址
//		scanf("%d",&arr[i]);
//
//	//调整
//	for(i = 0;i<10;i++)
//	{
//		for(j = m + 1;j < 10;j++)
//		{
//			if(arr[m]>arr[j])
//			{
//				int tmp = arr[m];
//				arr[m] = arr[j];
//				arr[j] = tmp;
//			}
//		}
//		m++;
//	}
//
//
//
//
//	//输出
//	for(i = 0;i < 10;i++)
//		printf("%d ",arr[i]);
//	printf("\n");
//
//system("pause");
//return 0;
//}



//2.教师法
#include<stdio.h>
#include<windows.h>

int main()
{
	void sort(int array[],int n);  //声明函数
	int a[10],i;
	printf("enter array:\n");   //设置数组以及变量
	for(i=0;i<10;i++)
		scanf("%d",&a[i]);   //输入数组值，加&并且使用for语句
	sort(a,10);  //将参数传至函数内
	printf("The sorted array:\n");
	for(i=0;i<10;i++)
		printf("%d ",a[i]);  //利用for循环语句输出
	printf("\n");

system("pause");//暂停
return 0;
}

void sort(int array[],int n)
{
	int i,j,k,t; //设置四个变量
	for(i=0;i<n-1;i++) //利用for语句循环，n-1次
	{
	k=i; //k = 0,i = 0;															                        //k = i = 1
	for(j=i+1;j<n;j++)  //j = i+1 = 1,n = 10									                        //j = i+1 = 2
			if(array[j]<array[k]) //arrar[1] < array[0]…… 比较出最小的坐标							//比较出最小的值
				k=j; //0 = 1; 将后面最小的放在k
	
	//上一步利用k = i;开始用k进行比较，后将最小的放在k中，与i进行交换
	
	t=array[k]; //t = 1
	array[k]=array[i];//1 = 0
	array[i]=t; //0 = 1

	}
}


